package hhh.app.presenter.ui.view;

import android.content.Context;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;

import hhh.app.R;

/**
 * Created by hhh on 2016/12/22.
 */
public class StateLayout extends FrameLayout {
//    private View loading;
//    private View error;
//    private View empty;
//    private View content;

    private SparseArray<View> views=new SparseArray<View>();

    private FrameLayout container;

    public StateLayout(Context context,int resId) {
        super(context);
        init(resId);
    }

//    public StateLayout(Context context, AttributeSet attrs) {
//        super(context, attrs);
//        init();
//    }
//
//    public StateLayout(Context context, AttributeSet attrs, int defStyleAttr) {
//        super(context, attrs, defStyleAttr);
//        init();
//    }

    private void init(int resId){
        container= (FrameLayout) LayoutInflater.from(getContext()).inflate(R.layout.layout_state,null);
//        loading=container.findViewById(R.id.state_loading);
//        error=container.findViewById(R.id.state_error);
//        empty=container.findViewById(R.id.state_empty);
        int loadingid=R.id.state_loading;
        int errorid=R.id.state_error;
        int empty=R.id.state_empty;

        int count=container.getChildCount();
        for(int i=0;i<count;i++){
            View v=container.getChildAt(i);
            if(null!=v){
                views.put(v.getId(),v);
            }
        }
        this.addView(container);
    }

    public void showView(int rsId){
        int count=views.size();
        for(int i=0;i<count;i++){
            int index=views.keyAt(i);
            views.get(index).setVisibility(index==rsId?View.VISIBLE:View.GONE);
        }
//        View v=container.findViewById(rsId);
//        if(null!=v){
//            for(int i=0;i<container.getChildCount();i++){
//                View child=container.getChildAt(i);
//                child.setVisibility(child==v?View.VISIBLE:View.GONE);
//            }
//        }
    }

//    private void showView(View v){
//        for(int i=0;i<container.getChildCount();i++){
//            View child=container.getChildAt(i);
//            child.setVisibility(child==v?View.VISIBLE:View.GONE);
//        }
//    }
//
//    public void showEmptyView(){
//        showView(empty);
//    }
//
//    public void showErrorView(){
//        showView(error);
//    }
//
//    public void showLoadingView(){
//        showView(loading);
//    }
//
//    public void showContentView(){
//        showView(content);
//    }

    public void setContentView(int resId,View v){
//        this.content=v;
//        container.addView(content);
//        content.setVisibility(View.GONE);
        views.put(resId,v);
        container.addView(v);
        v.setVisibility(View.GONE);
    }

    public void setContentView(int resId){
        View v=View.inflate(getContext(),resId,null);
        v.setId(resId);
        this.setContentView(resId,v);
    }
}
